// 回调函数方式（回调地狱）
function fetchData(callback) {
    setTimeout(() => {
        callback('数据');
    }, 1000);
}

fetchData((data) => {
    console.log(data);
    fetchData((data2) => {
        console.log(data2);
        fetchData((data3) => {
            console.log(data3);
        });
    });
});

// Promise 方式（链式调用）
function fetchDataPromise() {
    return new Promise(resolve => {
        setTimeout(() => resolve('数据'), 1000);
    });
}

fetchDataPromise()
    .then(data => {
        console.log(data);
        return fetchDataPromise();
    })
    .then(data => {
        console.log(data);
        return fetchDataPromise();
    })
    .then(data => {
        console.log(data);
    });